

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>ExecutionReport_2025-07-16-23-57-40.html</title>
<link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png">
<link href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@c43b89d03a7c43dae8bb8f0f078bad1997af6b3b/spark/css/spark-style.css" rel="stylesheet" />
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://cdn.rawgit.com/extent-framework/extent-github-cdn/7cc78ce/spark/js/jsontree.js"></script>
<style type="text/css"></style></head><body class="spa -report standard">
  <div class="app">
    <div class="layout">
<div class="header navbar">
<div class="vheader">
<div class="nav-logo">
<a href="#">
<div class="logo" style="background-image: url('https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png')"></div>
</a>
</div>
<ul class="nav-left">
<li class="search-box">
<a class="search-toggle" href="#">
<i class="search-icon fa fa-search"></i>
<i class="search-icon-close fa fa-close"></i>
</a>
</li>
<li class="search-input"><input id="search-tests" class="form-control" type="text" placeholder="Search..."></li>
</ul>
<ul class="nav-right">
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">ExecutionReport_2025-07-16-23-57-40.html</span></a>
</li>
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">星期三, 七月 16, 2025, 11:57 下午 (CST)</span></a>
</li>
</ul>
</div>
</div><div class="side-nav">
<div class="side-nav-inner">
<ul class="side-nav-menu">
<li class="nav-item dropdown" onclick="toggleView('test-view')">
<a id="nav-test" class="dropdown-toggle" href="#">
<span class="ico"><i class="fa fa-list"></i></span>
</a>
</li>
<li class="nav-item dropdown" onclick="toggleView('category-view')">
<a id="nav-category" class="dropdown-toggle" href="#">
<span class="ico"><i class="fa fa-tag"></i></span>
</a>
</li>
<li class="nav-item dropdown" onclick="toggleView('dashboard-view')">
<a id="nav-dashboard" class="dropdown-toggle" href="#">
<span class="ico"><i class="fa fa-bar-chart"></i></span>
</a>
</li>
</ul>
</div>
</div>      <div class="vcontainer">
        <div class="main-content">
<div class="test-wrapper row view test-view">
  <div class="test-list">
    <div class="test-list-tools">
<ul class="tools pull-left">
<li><a href="#"><span class="font-size-14">Tests</span></a></li>
</ul>
<ul class="tools text-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-exclamation-circle"></i></a>
<ul id="status-toggle" class="dropdown-menu dropdown-md p-v-0">
<a class="dropdown-item" status="pass" href="#"><span>Pass</span><span class="status success"></span></a>
<div class="dropdown-divider"></div>
<a status="clear" class="dropdown-item" href="#"><span>Clear</span><span class="pull-right"><i class="fa fa-close"></i></span></a>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-tag"></i></a>
<ul id="tag-toggle" class="dropdown-menu dropdown-md p-v-0">
<a class="dropdown-item" href="#">ProjectInfoTest</a><a class="dropdown-item" href="#">MyTestClass2</a><a class="dropdown-item" href="#">MyTestClass</a>
</ul>
</li>
</ul>
</div>    <div class="test-list-wrapper scrollable">
      <ul class="test-list-item">
        <li class="test-item"  status="pass" test-id="1"
          author=""
          tag="MyTestClass"
          device="">
          <div class="test-detail">
            <p class="name">MyTestClass.testLogin.Login with valid credentials</p>
            <p class="text-sm">
              <span>23:57:42 下午</span> / <span>00:00:087</span>
              <span class="badge pass-bg log float-right">Pass</span>
            </p>
          </div>
          <div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<h5 class="test-status text-pass">MyTestClass.testLogin.Login with valid credentials</h5>
<span class='badge badge-success'>07.16.2025 23:57:42</span>
<span class='badge badge-danger'>07.16.2025 23:57:42</span>
<span class='badge badge-default'>00:00:087</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=1</span>
</div>
<div class="m-t-15"><span class="badge badge-pill badge-default">MyTestClass</span></div>
</div>
</div><div class="detail-body mt-4">
<table class="table table-sm">
  <thead><tr><th class="status-col">Status</th><th class="timestamp-col">Timestamp</th><th class="details-col">Details</th></tr></thead>
  <tbody>
      <tr class="event-row">
        <td><span class="badge log pass-bg">Pass</span></td>
        <td>23:57:42</td>
        <td>
          测试通过 (执行时间: 85 ms)
        </td>
      </tr>
      <tr class="event-row">
        <td><span class="badge log info-bg">Info</span></td>
        <td>23:57:42</td>
        <td>
          
==== REQUEST DETAILS ====<br/>Request Method: GET<br/>Request URL: http://t.weather.sojson.com/api/weather/city/101010100<br/>Request Headers: <br/>  csrf-token: 4PKc90Yk11rZgKZxsJ+mQH3QhRSWIGCSHLNb8ao/BDEuGy1ifA+e4VeZ7QcURdl/BhdNEBA8c6wdKq54/VBB9g==<br/>  x-auth-token: ba03900e-fd5b-4a27-96c4-9213e14487b9<br/>  accept: application/json<br/>  Content-Type: application/json
        </td>
      </tr>
      <tr class="event-row">
        <td><span class="badge log info-bg">Info</span></td>
        <td>23:57:42</td>
        <td>
          
==== RESPONSE DETAILS ====<br/>Response Status: 200 HTTP/1.1 200 OK<br/>Response Time: 52 ms<br/>Response Headers: <br/>  Server: Tengine<br/>  Content-Type: application/json;charset=UTF-8<br/>  Transfer-Encoding: chunked<br/>  Connection: keep-alive<br/>  Vary: Accept-Encoding<br/>  Date: Wed, 16 Jul 2025 15:24:46 GMT<br/>  Via: cache9.l2cn3130[0,0,200-0,H], cache51.l2cn3130[0,0], kunlun5.cn8037[0,0,200-0,H], kunlun6.cn8037[1,0]<br/>  Age: 947<br/>  Ali-Swift-Global-Savetime: 1752680516<br/>  X-Cache: HIT TCP_MEM_HIT dirn:-2:-2<br/>  X-Swift-SaveTime: Wed, 16 Jul 2025 15:42:05 GMT<br/>  X-Swift-CacheTime: 1971<br/>  Timing-Allow-Origin: *<br/>  EagleId: 7d271bda17526814630238082e<br/>  Content-Encoding: gzip<br/>Response Body: {"message":"success感谢又拍云(upyun.com)提供CDN赞助","status":200,"date":"20250716","time":"2025-07-16 23:24:46","cityInfo":{"city":"北京市","citykey":"101010100","parent":"北京","updateTime":"19:38"},"data":{"shidu":"58%","pm25":3.0,"pm10":9.0,"quality":"优","wendu":"30.8","ganmao":"各类人群可自由活动","forecast":[{"date":"16","high":"高温 32℃","low":"低温 23℃","ymd":"2025-07-16","week":"星期三","sunrise":"04:59","sunset":"19:41","aqi":35,"fx":"东风","fl":"1级","type":"多云","notice":"阴晴之间，谨防紫外线侵扰"},{"date":"17","high":"高温 36℃","low":"低温 26℃","ymd":"2025-07-17","week":"星期四","sunrise":"05:00","sunset":"19:41","aqi":41,"fx":"东北风","fl":"2级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"18","high":"高温 38℃","low":"低温 27℃","ymd":"2025-07-18","week":"星期五","sunrise":"05:00","sunset":"19:40","aqi":66,"fx":"东南风","fl":"2级","type":"多云","notice":"阴晴之间，谨防紫外线侵扰"},{"date":"19","high":"高温 36℃","low":"低温 27℃","ymd":"2025-07-19","week":"星期六","sunrise":"05:01","sunset":"19:39","aqi":51,"fx":"东北风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"20","high":"高温 31℃","low":"低温 25℃","ymd":"2025-07-20","week":"星期日","sunrise":"05:02","sunset":"19:39","aqi":41,"fx":"东北风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"21","high":"高温 30℃","low":"低温 24℃","ymd":"2025-07-21","week":"星期一","sunrise":"05:03","sunset":"19:38","aqi":41,"fx":"西北风","fl":"2级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"22","high":"高温 32℃","low":"低温 22℃","ymd":"2025-07-22","week":"星期二","sunrise":"05:04","sunset":"19:37","aqi":55,"fx":"东南风","fl":"1级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"23","high":"高温 37℃","low":"低温 26℃","ymd":"2025-07-23","week":"星期三","sunrise":"05:04","sunset":"19:36","aqi":66,"fx":"东南风","fl":"2级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"24","high":"高温 38℃","low":"低温 27℃","ymd":"2025-07-24","week":"星期四","sunrise":"05:05","sunset":"19:35","aqi":54,"fx":"东南风","fl":"2级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"25","high":"高温 36℃","low":"低温 27℃","ymd":"2025-07-25","week":"星期五","sunrise":"05:06","sunset":"19:35","aqi":61,"fx":"东风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"26","high":"高温 35℃","low":"低温 27℃","ymd":"2025-07-26","week":"星期六","sunrise":"05:07","sunset":"19:34","aqi":55,"fx":"东南风","fl":"2级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"27","high":"高温 36℃","low":"低温 27℃","ymd":"2025-07-27","week":"星期日","sunrise":"05:08","sunset":"19:33","aqi":52,"fx":"南风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"28","high":"高温 33℃","low":"低温 25℃","ymd":"2025-07-28","week":"星期一","sunrise":"05:09","sunset":"19:32","aqi":57,"fx":"东南风","fl":"1级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"29","high":"高温 31℃","low":"低温 26℃","ymd":"2025-07-29","week":"星期二","sunrise":"05:10","sunset":"19:31","aqi":64,"fx":"东南风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"30","high":"高温 36℃","low":"低温 26℃","ymd":"2025-07-30","week":"星期三","sunrise":"05:11","sunset":"19:30","aqi":54,"fx":"西南风","fl":"2级","type":"多云","notice":"阴晴之间，谨防紫外线侵扰"}],"yesterday":{"date":"15","high":"高温 31℃","low":"低温 21℃","ymd":"2025-07-15","week":"星期二","sunrise":"04:58","sunset":"19:42","aqi":78,"fx":"东南风","fl":"3级","type":"小雨","notice":"雨虽小，注意保暖别感冒"}}}
        </td>
      </tr>
  </tbody>
</table>
</div>
          </div>
        </li>
        <li class="test-item"  status="pass" test-id="2"
          author=""
          tag="MyTestClass"
          device="">
          <div class="test-detail">
            <p class="name">MyTestClass.testLogin.Login with invalid credentials</p>
            <p class="text-sm">
              <span>23:57:42 下午</span> / <span>00:00:043</span>
              <span class="badge pass-bg log float-right">Pass</span>
            </p>
          </div>
          <div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<h5 class="test-status text-pass">MyTestClass.testLogin.Login with invalid credentials</h5>
<span class='badge badge-success'>07.16.2025 23:57:42</span>
<span class='badge badge-danger'>07.16.2025 23:57:42</span>
<span class='badge badge-default'>00:00:043</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=2</span>
</div>
<div class="m-t-15"><span class="badge badge-pill badge-default">MyTestClass</span></div>
</div>
</div><div class="detail-body mt-4">
<table class="table table-sm">
  <thead><tr><th class="status-col">Status</th><th class="timestamp-col">Timestamp</th><th class="details-col">Details</th></tr></thead>
  <tbody>
      <tr class="event-row">
        <td><span class="badge log pass-bg">Pass</span></td>
        <td>23:57:42</td>
        <td>
          测试通过 (执行时间: 43 ms)
        </td>
      </tr>
      <tr class="event-row">
        <td><span class="badge log info-bg">Info</span></td>
        <td>23:57:42</td>
        <td>
          
==== REQUEST DETAILS ====<br/>Request Method: GET<br/>Request URL: http://t.weather.sojson.com/api/weather/city/101010100<br/>Request Headers: <br/>  csrf-token: 4PKc90Yk11rZgKZxsJ+mQH3QhRSWIGCSHLNb8ao/BDEuGy1ifA+e4VeZ7QcURdl/BhdNEBA8c6wdKq54/VBB9g==<br/>  x-auth-token: ba03900e-fd5b-4a27-96c4-9213e14487b9<br/>  accept: application/json<br/>  Content-Type: application/json
        </td>
      </tr>
      <tr class="event-row">
        <td><span class="badge log info-bg">Info</span></td>
        <td>23:57:42</td>
        <td>
          
==== RESPONSE DETAILS ====<br/>Response Status: 200 HTTP/1.1 200 OK<br/>Response Time: 28 ms<br/>Response Headers: <br/>  Server: Tengine<br/>  Content-Type: application/json;charset=UTF-8<br/>  Transfer-Encoding: chunked<br/>  Connection: keep-alive<br/>  Vary: Accept-Encoding<br/>  Date: Wed, 16 Jul 2025 15:24:46 GMT<br/>  Via: cache9.l2cn3130[0,0,200-0,H], cache51.l2cn3130[0,0], kunlun5.cn8037[0,0,200-0,H], kunlun5.cn8037[1,0]<br/>  Age: 947<br/>  Ali-Swift-Global-Savetime: 1752680516<br/>  X-Cache: HIT TCP_MEM_HIT dirn:-2:-2<br/>  X-Swift-SaveTime: Wed, 16 Jul 2025 15:42:05 GMT<br/>  X-Swift-CacheTime: 1971<br/>  Timing-Allow-Origin: *<br/>  EagleId: 7d271bd917526814630801848e<br/>  Content-Encoding: gzip<br/>Response Body: {"message":"success感谢又拍云(upyun.com)提供CDN赞助","status":200,"date":"20250716","time":"2025-07-16 23:24:46","cityInfo":{"city":"北京市","citykey":"101010100","parent":"北京","updateTime":"19:38"},"data":{"shidu":"58%","pm25":3.0,"pm10":9.0,"quality":"优","wendu":"30.8","ganmao":"各类人群可自由活动","forecast":[{"date":"16","high":"高温 32℃","low":"低温 23℃","ymd":"2025-07-16","week":"星期三","sunrise":"04:59","sunset":"19:41","aqi":35,"fx":"东风","fl":"1级","type":"多云","notice":"阴晴之间，谨防紫外线侵扰"},{"date":"17","high":"高温 36℃","low":"低温 26℃","ymd":"2025-07-17","week":"星期四","sunrise":"05:00","sunset":"19:41","aqi":41,"fx":"东北风","fl":"2级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"18","high":"高温 38℃","low":"低温 27℃","ymd":"2025-07-18","week":"星期五","sunrise":"05:00","sunset":"19:40","aqi":66,"fx":"东南风","fl":"2级","type":"多云","notice":"阴晴之间，谨防紫外线侵扰"},{"date":"19","high":"高温 36℃","low":"低温 27℃","ymd":"2025-07-19","week":"星期六","sunrise":"05:01","sunset":"19:39","aqi":51,"fx":"东北风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"20","high":"高温 31℃","low":"低温 25℃","ymd":"2025-07-20","week":"星期日","sunrise":"05:02","sunset":"19:39","aqi":41,"fx":"东北风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"21","high":"高温 30℃","low":"低温 24℃","ymd":"2025-07-21","week":"星期一","sunrise":"05:03","sunset":"19:38","aqi":41,"fx":"西北风","fl":"2级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"22","high":"高温 32℃","low":"低温 22℃","ymd":"2025-07-22","week":"星期二","sunrise":"05:04","sunset":"19:37","aqi":55,"fx":"东南风","fl":"1级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"23","high":"高温 37℃","low":"低温 26℃","ymd":"2025-07-23","week":"星期三","sunrise":"05:04","sunset":"19:36","aqi":66,"fx":"东南风","fl":"2级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"24","high":"高温 38℃","low":"低温 27℃","ymd":"2025-07-24","week":"星期四","sunrise":"05:05","sunset":"19:35","aqi":54,"fx":"东南风","fl":"2级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"25","high":"高温 36℃","low":"低温 27℃","ymd":"2025-07-25","week":"星期五","sunrise":"05:06","sunset":"19:35","aqi":61,"fx":"东风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"26","high":"高温 35℃","low":"低温 27℃","ymd":"2025-07-26","week":"星期六","sunrise":"05:07","sunset":"19:34","aqi":55,"fx":"东南风","fl":"2级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"27","high":"高温 36℃","low":"低温 27℃","ymd":"2025-07-27","week":"星期日","sunrise":"05:08","sunset":"19:33","aqi":52,"fx":"南风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"28","high":"高温 33℃","low":"低温 25℃","ymd":"2025-07-28","week":"星期一","sunrise":"05:09","sunset":"19:32","aqi":57,"fx":"东南风","fl":"1级","type":"中雨","notice":"记得随身携带雨伞哦"},{"date":"29","high":"高温 31℃","low":"低温 26℃","ymd":"2025-07-29","week":"星期二","sunrise":"05:10","sunset":"19:31","aqi":64,"fx":"东南风","fl":"2级","type":"小雨","notice":"雨虽小，注意保暖别感冒"},{"date":"30","high":"高温 36℃","low":"低温 26℃","ymd":"2025-07-30","week":"星期三","sunrise":"05:11","sunset":"19:30","aqi":54,"fx":"西南风","fl":"2级","type":"多云","notice":"阴晴之间，谨防紫外线侵扰"}],"yesterday":{"date":"15","high":"高温 31℃","low":"低温 21℃","ymd":"2025-07-15","week":"星期二","sunrise":"04:58","sunset":"19:42","aqi":78,"fx":"东南风","fl":"3级","type":"小雨","notice":"雨虽小，注意保暖别感冒"}}}
        </td>
      </tr>
  </tbody>
</table>
</div>
          </div>
        </li>
        <li class="test-item"  status="pass" test-id="3"
          author=""
          tag="MyTestClass2"
          device="">
          <div class="test-detail">
            <p class="name">MyTestClass2.testLogin2.valid credentials</p>
            <p class="text-sm">
              <span>23:57:42 下午</span> / <span>00:03:001</span>
              <span class="badge pass-bg log float-right">Pass</span>
            </p>
          </div>
          <div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<h5 class="test-status text-pass">MyTestClass2.testLogin2.valid credentials</h5>
<span class='badge badge-success'>07.16.2025 23:57:42</span>
<span class='badge badge-danger'>07.16.2025 23:57:45</span>
<span class='badge badge-default'>00:03:001</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=3</span>
</div>
<div class="m-t-15"><span class="badge badge-pill badge-default">MyTestClass2</span></div>
</div>
</div><div class="detail-body mt-4">
<table class="table table-sm">
  <thead><tr><th class="status-col">Status</th><th class="timestamp-col">Timestamp</th><th class="details-col">Details</th></tr></thead>
  <tbody>
      <tr class="event-row">
        <td><span class="badge log pass-bg">Pass</span></td>
        <td>23:57:45</td>
        <td>
          测试通过 (执行时间: 3002 ms)
        </td>
      </tr>
  </tbody>
</table>
</div>
          </div>
        </li>
        <li class="test-item"  status="pass" test-id="4"
          author=""
          tag="MyTestClass2"
          device="">
          <div class="test-detail">
            <p class="name">MyTestClass2.testLogin2.invalid credentials</p>
            <p class="text-sm">
              <span>23:57:45 下午</span> / <span>00:03:000</span>
              <span class="badge pass-bg log float-right">Pass</span>
            </p>
          </div>
          <div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<h5 class="test-status text-pass">MyTestClass2.testLogin2.invalid credentials</h5>
<span class='badge badge-success'>07.16.2025 23:57:45</span>
<span class='badge badge-danger'>07.16.2025 23:57:48</span>
<span class='badge badge-default'>00:03:000</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=4</span>
</div>
<div class="m-t-15"><span class="badge badge-pill badge-default">MyTestClass2</span></div>
</div>
</div><div class="detail-body mt-4">
<table class="table table-sm">
  <thead><tr><th class="status-col">Status</th><th class="timestamp-col">Timestamp</th><th class="details-col">Details</th></tr></thead>
  <tbody>
      <tr class="event-row">
        <td><span class="badge log pass-bg">Pass</span></td>
        <td>23:57:48</td>
        <td>
          测试通过 (执行时间: 3000 ms)
        </td>
      </tr>
  </tbody>
</table>
</div>
          </div>
        </li>
        <li class="test-item"  status="pass" test-id="5"
          author=""
          tag="ProjectInfoTest"
          device="">
          <div class="test-detail">
            <p class="name">ProjectInfoTest.testGetProjectInfo</p>
            <p class="text-sm">
              <span>23:57:48 下午</span> / <span>00:00:138</span>
              <span class="badge pass-bg log float-right">Pass</span>
            </p>
          </div>
          <div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<h5 class="test-status text-pass">ProjectInfoTest.testGetProjectInfo</h5>
<span class='badge badge-success'>07.16.2025 23:57:48</span>
<span class='badge badge-danger'>07.16.2025 23:57:49</span>
<span class='badge badge-default'>00:00:138</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=5</span>
</div>
<div class="m-t-15"><span class="badge badge-pill badge-default">ProjectInfoTest</span></div>
</div>
</div><div class="detail-body mt-4">
<table class="table table-sm">
  <thead><tr><th class="status-col">Status</th><th class="timestamp-col">Timestamp</th><th class="details-col">Details</th></tr></thead>
  <tbody>
      <tr class="event-row">
        <td><span class="badge log pass-bg">Pass</span></td>
        <td>23:57:49</td>
        <td>
          测试通过 (执行时间: 138 ms)
        </td>
      </tr>
      <tr class="event-row">
        <td><span class="badge log info-bg">Info</span></td>
        <td>23:57:49</td>
        <td>
          
==== REQUEST DETAILS ====<br/>Request Method: GET<br/>Request URL: https://demo.metersphere.com/organization/project/list/100001<br/>Request Headers: <br/>  csrf-token: 4PKc90Yk11rZgKZxsJ+mQH3QhRSWIGCSHLNb8ao/BDEuGy1ifA+e4VeZ7QcURdl/BhdNEBA8c6wdKq54/VBB9g==<br/>  x-auth-token: ba03900e-fd5b-4a27-96c4-9213e14487b9<br/>  accept: application/json<br/>  Content-Type: application/json
        </td>
      </tr>
      <tr class="event-row">
        <td><span class="badge log info-bg">Info</span></td>
        <td>23:57:49</td>
        <td>
          
==== RESPONSE DETAILS ====<br/>Response Status: 200 HTTP/1.1 200 OK<br/>Response Time: 123 ms<br/>Response Headers: <br/>  Server: openresty<br/>  Date: Wed, 16 Jul 2025 15:57:49 GMT<br/>  Content-Type: application/json<br/>  Transfer-Encoding: chunked<br/>  Connection: keep-alive<br/>  Vary: Accept-Encoding<br/>  Strict-Transport-Security: max-age=31536000<br/>  Cache-Control: no-cache<br/>Response Body: {"code":100200,"message":null,"messageDetail":null,"data":[{"id":"100001100001","name":"示例项目"}]}
        </td>
      </tr>
  </tbody>
</table>
</div>
          </div>
        </li>
      </ul>
    </div>
  </div>
<div class="test-content scrollable">
<div class="test-content-tools">
<ul><li><a class="back-to-test" href="#"><i class="fa fa-arrow-left"></i></a></li></ul>
</div>
<div class="test-content-detail"><div class="detail-body"></div></div>
</div></div>
<div class="test-wrapper row view category-view attributes-view">
<div class="test-list">
<div class="test-list-tools">
<ul class="tools pull-left"><li><a href=""><span class="font-size-14">Category</span></a></li></ul>
<ul class="tools text-right"><li><a href="#"><span class="badge badge-primary">3</span></a></li></ul>
</div>
<div class="test-list-wrapper scrollable">
<ul class="test-list-item">
<li class="test-item">
<div class="test-detail">
<span class="meta">
<span class='badge log pass-bg'>1</span>
</span>
<p class="name">ProjectInfoTest</p>
<p class="duration text-sm">1 tests</p>
</div>
<div class="test-contents d-none">
<div class="info">
<h4>ProjectInfoTest</h4>
<span status="pass" class='badge log pass-bg'>1 passed</span>
</div>
<table class='table table-sm mt-4'>
<thead>
<tr>
<th class="status-col">Status</th>
<th class="timestamp-col">Timestamp</th>
<th>TestName</th>
</tr>
</thead>
<tbody>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>23:57:48 下午</td>
<td>
<a href="#" class="linked" test-id='5' id='5'>ProjectInfoTest.testGetProjectInfo</a>
</td>
</tr>
</tbody>
</table>
</div>
</li>
<li class="test-item">
<div class="test-detail">
<span class="meta">
<span class='badge log pass-bg'>2</span>
</span>
<p class="name">MyTestClass2</p>
<p class="duration text-sm">2 tests</p>
</div>
<div class="test-contents d-none">
<div class="info">
<h4>MyTestClass2</h4>
<span status="pass" class='badge log pass-bg'>2 passed</span>
</div>
<table class='table table-sm mt-4'>
<thead>
<tr>
<th class="status-col">Status</th>
<th class="timestamp-col">Timestamp</th>
<th>TestName</th>
</tr>
</thead>
<tbody>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>23:57:42 下午</td>
<td>
<a href="#" class="linked" test-id='3' id='3'>MyTestClass2.testLogin2.valid credentials</a>
</td>
</tr>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>23:57:45 下午</td>
<td>
<a href="#" class="linked" test-id='4' id='4'>MyTestClass2.testLogin2.invalid credentials</a>
</td>
</tr>
</tbody>
</table>
</div>
</li>
<li class="test-item">
<div class="test-detail">
<span class="meta">
<span class='badge log pass-bg'>2</span>
</span>
<p class="name">MyTestClass</p>
<p class="duration text-sm">2 tests</p>
</div>
<div class="test-contents d-none">
<div class="info">
<h4>MyTestClass</h4>
<span status="pass" class='badge log pass-bg'>2 passed</span>
</div>
<table class='table table-sm mt-4'>
<thead>
<tr>
<th class="status-col">Status</th>
<th class="timestamp-col">Timestamp</th>
<th>TestName</th>
</tr>
</thead>
<tbody>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>23:57:42 下午</td>
<td>
<a href="#" class="linked" test-id='1' id='1'>MyTestClass.testLogin.Login with valid credentials</a>
</td>
</tr>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>23:57:42 下午</td>
<td>
<a href="#" class="linked" test-id='2' id='2'>MyTestClass.testLogin.Login with invalid credentials</a>
</td>
</tr>
</tbody>
</table>
</div>
</li>
</ul>
</div>
</div>
<div class="test-content scrollable">
<div class="test-content-detail">
<div class="detail-body"></div>
</div>
</div>
</div><div class="container-fluid p-4 view dashboard-view">
<div class="row">
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Started</p>
<h3>星期三, 七月 16, 2025, 11:57 下午 (CST)</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Ended</p>
<h3>星期三, 七月 16, 2025, 11:57 下午 (CST)</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0 text-pass">Tests Passed</p>
<h3>5</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0 text-fail">Tests Failed</p>
<h3>0</h3>
</div></div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="card-title">Tests</h6>
</div>
<div class="card-body">
<div class="">
<canvas id='parent-analysis' width='115' height='90'></canvas>
</div>
</div>
<div class="card-footer">
<div><small data-tooltip='100%'>
<b>5</b> tests passed
</small>
</div>
<div>
<small data-tooltip='0%'><b>0</b> tests failed,
<b>0</b> skipped, <b data-tooltip='0%'>0</b> others
</small>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="card-title">Log events</h6>
</div>
<div class="card-body">
<div class="">
<canvas id='events-analysis' width='115' height='90'></canvas>
</div>
</div>
<div class="card-footer">
<div><small data-tooltip='45%'><b>5</b> events passed</small></div>
<div>
<small data-tooltip='0%'><b>0</b> events failed,
<b data-tooltip='%'>6</b> others
</small>
</div>
</div>
</div>
</div>
</div>
<div class="row"><div class="col-md-12">
<div class="card"><div class="card-header"><p>Timeline</p></div>
<div class="card-body pt-0"><div>
<canvas id="timeline" height="120"></canvas>
</div></div>
</div>
</div></div>
<script>
var timeline = {
"MyTestClass.testLogin.Login with valid credentials":0.087,"MyTestClass.testLogin.Login with invalid credentials":0.043,"MyTestClass2.testLogin2.valid credentials":3.001,"MyTestClass2.testLogin2.invalid credentials":3,"ProjectInfoTest.testGetProjectInfo":0.138
};
</script>
<div class="row">
<div class="col-md-4 category-container">
<div class="card">
<div class="card-header"><p>Tags</p></div>
<div class="card-body pb-0 pt-0"><table class="table table-sm table-bordered">
<thead><tr class="bg-gray"><th>Name</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>Others</th><th>Passed %</th></tr></thead><tbody>
<tr>
<td>ProjectInfoTest</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100%</td>
</tr>
<tr>
<td>MyTestClass2</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100%</td>
</tr>
<tr>
<td>MyTestClass</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100%</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="col-md-4 sysenv-container">
<div class="card">
<div class="card-header"><p>System/Environment</p></div>
<div class="card-body pb-0 pt-0"><table class="table table-sm table-bordered">
<thead><tr class="bg-gray"><th>Name</th><th>Value</th></tr></thead>
<tbody>
<tr>
<td>OS</td>
<td>Windows 10</td>
</tr>
<tr>
<td>Java Version</td>
<td>1.8.0_131</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
<script>
var statusGroup = {
parentCount: 5,
passParent: 5,
failParent: 0,
warningParent: 0,
skipParent: 0,
childCount: 5,
passChild: 0,
failChild: 0,
warningChild: 0,
skipChild: 0,
infoChild: 0,
grandChildCount: 5,
passGrandChild: 0,
failGrandChild: 0,
warningGrandChild: 0,
skipGrandChild: 0,
infoGrandChild: 0,
eventsCount: 5,
passEvents: 5,
failEvents: 0,
warningEvents: 0,
skipEvents: 0,
infoEvents: 6
};
</script>        </div>
      </div>
    </div>
  </div>
<script src="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@14e9bb345ef7e2ed3a102f271d84e9f0267c88e7/spark/js/spark-script.js"></script>
<script type="text/javascript"></script></body>
</html>